// 省市区三级联动
// 需要手动引入city-data.js

/*
    initData初始数据: {province:'',city:'',county:''}
*/
function cityInit(initData) {
    var rawData = $.rawCitiesData;
    var prov = `<option value="">--请选择省份--</option>`;
    rawData.forEach(item => {
        if(initData&&initData.province){
            if(initData.province===item.name){
                // 省份编码
                provCode = item.code;
                prov += `<option selected provincename="${item.name}" value="${item.code}">${item.name}</option>`
            }else{
                prov += `<option provincename="${item.name}" value="${item.code}">${item.name}</option>`
            }
        }else{
            prov += `<option provincename="${item.name}" value="${item.code}">${item.name}</option>`
        }
    });
    $("#province").html(prov);

    // 如果传递了默认数据
    if(initData instanceof Object){
        // 显示默认城市
        let initCity = `<option value="">--请选择城市--</option>`;
        let currProv=rawData.find(item=>item.name===initData.province||item.name.includes(initData.province));
        Array.isArray(currProv.sub)&&currProv.sub.forEach(item=>{
            if(initData.city===item.name||item.name.includes(initData.city)){
                // 城市编码
                cityCode=item.id;
                initCity += `<option selected cityname="${item.name}" value="${item.code}">${item.name}</option>`
            }else{
                initCity += `<option cityname="${item.name}" value="${item.code}">${item.name}</option>`;
            }
            
        });
        $("#city").html(initCity);
        // 显示默认区县
        let initCounty = `<option value="">--请选择区县--</option>`;
        let currCity=currProv.sub.find(item=>initData.city===item.name||item.name.includes(initData.city));
        Array.isArray(currCity.sub)&&currCity.sub.forEach(item => {
            if(item.name===initData.county||item.name.includes(initData.county)){
                initCounty += `<option selected countyname="${item.name}" value="${item.code}">${item.name}</option>`;
            }else{
                initCounty += `<option countyname="${item.name}" value="${item.code}">${item.name}</option>`;
            }
            
        });
        // 重置区县
        $("#county").html(initCounty);
    }else{
        $("#city").html(`<option value="">--请选择城市--</option>`)
        $("#county").html(`<option value="">--请选择区县--</option>`)
    }

    $("#province").on('change', function () {
        var city = `<option value="">--请选择城市--</option>`;
        provCode = $(this).val();

        var currProv=rawData.find(item=>item.code==provCode);

        Array.isArray(currProv.sub)&&currProv.sub.forEach(item=>{
            city += `<option cityname="${item.name}" value="${item.code}">${item.name}</option>`;
        });
        $("#city").html(city);
        // 重置区县
        $("#county").html(`<option value="">--请选择区县--</option>`)
    });
    
    $("#city").on('change', function () {
        var coun = `<option value="">--请选择区县--</option>`;
        // 城市编码
        cityCode = $(this).val();
        var currProv=rawData.find(item=>item.code==provCode);
        var currCity=currProv.sub.find(item=>cityCode===item.code);
        Array.isArray(currCity.sub)&&currCity.sub.forEach(item => {
            coun += `<option countyname="${item.name}" value="${item.code}">${item.name}</option>`;
        });
        // 重置区县
        $("#county").html(coun);
    });
    
}